﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Xna.Framework;

namespace Brain
{
    public interface IPhysicsObject3D : IDisposable, IBrainSonSerialiable, IPickedObject
    {
        object Tag { get; set; }

        Vector3 Position { get; set; }

        Vector3 Scale { get; set; }

        bool Immovable { get; set; }

        float Mass { get; set; }

        Vector3 LinearVelocity { get; set; }
        Vector3 AngularVelocity { get; set; }

        Quaternion Orientation { get; set; }

        event SetVoid OnUpdate;

        /// <summary>
        /// Remove from Physics Simulation and Clean up
        /// </summary>
        void Dispose();
    }
}
